package com.xuecheng.content.convert;

/**
 * Create By Awen on 2021/10/6
 *
 * @author Awen
 */

import com.xuecheng.api.content.model.dto.CourseBaseDTO;
import com.xuecheng.content.entity.CourseBase;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 *  对象属性转换器：
 *   PS：将MapStruct依赖添加到工程中
 *   1.创建一个接口并在类上添加 @Mapper 注解
 *   2.在接口通过MapStruct的api创建出接口的实例对象
 *   3.转换方法
 *       传入参数、传出参数
 *       将传入参数里的数据会赋值给传出参数
 *   特点：
 *       1.对象中的属性转换数据时，默认情况下将两个对象中的同属性名进行赋值操作
 *
 */
@Mapper
public interface CourseBaseConvert {

    //构建属性转换示例
    CourseBaseConvert INSTANCE = Mappers.getMapper(CourseBaseConvert.class);
    //编写转换问题
    @Mapping(source = "id",target = "courseBaseId")
    CourseBaseDTO entity2dto(CourseBase courseBase);

    /*
     * 当前MapStruct是有对集合数据转换的功能的，
     *   但是：集合的转换需要依赖单个数据转换的方法
     * */
    List<CourseBaseDTO> entitys2dtos(List<CourseBase> courseBase);
}
